home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD008b.dsk / HELLO.bas < prev    next >
BASIC Source File  |  2003-06-12  |  6KB  |  140 lines

  1. 2 ID$ = "SOFTDISK JUNE 82 HARVEST"
  2. 3 PN$ = "HELLO"
  3. 5  REM ***************************                          **   FLEXIBLE MENU PROGRAM  **       BY DALE SALYER     **       JULY 25, 1981      **                          *****************************
  4. 7  REM ***************************                          **    NESTED MENU FEATURE   **  ADDED BY DANIEL TOBIAS  **     FEBRUARY 6, 1982     **                          *****************************
  5. 10 D$ =  CHR$(13) + CHR$(4):Q$ =  CHR$(34):Q1$ = Q$ +"," +Q$
  6. 20  DIM DESC$(20,20),CMD$(20,20),FILE$(20,20)
  7. 30  DIM NP(20)
  8. 40  READ NM: FOR A = 0 TO NM
  9. 50  READ NP(A): FOR B = 0 TO NP(A)
  10. 60  READ DESC$(A,B),CMD$(A,B),FILE$(A,B)
  11. 70  NEXT B,A
  12. 80 M = 0
  13. 90  GOTO 300
  14. 150 K =  PEEK( -16384)
  15. 160  IF K <128  THEN 150
  16. 170  POKE  -16368,0:C = K -192
  17. 180  IF K = 141  THEN  TEXT : HOME : PRINT D$;"CATALOG": END 
  18. 190  IF K = 160  THEN  GOSUB 250: GOTO 150
  19. 195  IF K = 187  AND CM$(M,0) < >""  THEN F$ = CM$(M,0): POP : GOTO 900
  20. 200  IF K = 155  THEN  TEXT : HOME : END 
  21. 210  IF K = 175  THEN 500
  22. 220  IF C <1  OR C >NP(M)  THEN 150
  23. 222  IF  VAL(CMD$(M,C)) >0  OR CMD$(M,C) = "0"  THEN  POP :F$ = CMD$(M,C): GOTO 900
  24. 225  VTAB 19: PRINT CMD$(M,C);FILE$(M,C)
  25. 227  TEXT : HOME 
  26. 230  PRINT D$;CMD$(M,C);FILE$(M,C)
  27. 240  END 
  28. 245  REM *************************                          **   PRINT NEXT PAGE OF     **       PROGRAMS.          **                          *****************************
  29. 250  HOME : FOR I = OL TO OL +4:VT = (I -OL +1) *2 +6
  30. 260  HTAB 3: VTAB VT: PRINT  CHR$(64 +I);: HTAB 10: PRINT DESC$(M,I)
  31. 270  IF I > = NP(M)  THEN OL = 1: RETURN 
  32. 280  NEXT I
  33. 290 OL = OL +5: RETURN 
  34. 300  REM *************************                          **     PROGRAM START        **                          *****************************
  35. 310  TEXT : HOME : INVERSE : PRINT "**** FLEXIBLE MENU : BY DALE SALYER ****NESTED MENU FEATURE ADDED BY DAN TOBIAS ";
  36. 320  NORMAL : PRINT "----------------------------------------";ID$;: IF  LEN(ID$) <40  THEN  PRINT 
  37. 330  PRINT "----------------------------------------"
  38. 332  HTAB 10: VTAB 6: PRINT DESC$(M,0)
  39. 335  POKE 34,6
  40. 337  INVERSE 
  41. 340  VTAB 23: HTAB 11: PRINT "<RETURN> CATALOG   "
  42. 350  VTAB 22: HTAB 11: PRINT "<SPACE>  NEXT PAGE "
  43. 360  VTAB 21: HTAB 11: PRINT "<ESC>APE TO BASIC  "
  44. 370  VTAB 20: HTAB 11: PRINT " / ENTER PROG. DATA"
  45. 372 P = 19
  46. 375  IF CM$(M,0) < >""  THEN  VTAB 19: HTAB 11: PRINT " ; PREVIOUS MENU   ":P = 18
  47. 380  VTAB P: HTAB 11: PRINT "A - "; CHR$(64 +NP(M));" SELECT PROG. "
  48. 390  NORMAL : POKE 35,17: REM  BOTTOM
  49. 400 OL = 1
  50. 420  GOSUB 250
  51. 430  GOSUB 150
  52. 440  END 
  53. 500  REM *************************                          **     ENTER NEW DATA       **                          *****************************
  54. 502  TEXT : HOME : PRINT "(HIT RETURN IF UNCHANGED)": PRINT "ENTER DISK I.D. LINE:": INPUT "";I$: IF I$ < >""  THEN ID$ = I$
  55. 503  PRINT : INPUT "NAME TO SAVE THIS PROGRAM UNDER:        ";P$: IF P$ < >""  THEN PN$ = P$
  56. 505 M = 0:NM = 0
  57. 507 FILE$(0,0) = "":CMD$(0,0) = "":DESC$(0,0) = ""
  58. 510  TEXT : HOME : HTAB 10: PRINT "DATA STATEMENT ENTRY": POKE 34,3: FOR I = 1 TO 20: HOME 
  59. 515  PRINT "ENTERING MENU #"M"  "DESC$(M,0)
  60. 520  VTAB 5: PRINT "NAME OF PROGRAM <QUIT = DONE,": PRINT "RETURN = MENU,   CAT = CATALOG>": INPUT FILE$(M,I)
  61. 524  IF FILE$(M,I) = "QUIT"  THEN 600
  62. 526  IF FILE$(M,I) = "CAT"  THEN  PRINT D$;"CATALOG": PRINT : PRINT "PRESS RETURN TO CONTINUE": GET R$: HOME : GOTO 520
  63. 528  IF FILE$(M,I) = ""  THEN  PRINT "THIS WILL BE MENU #";NM +1:NM = NM +1:CMD$(M,I) =  STR$(NM):CMD$(NM,0) =  STR$(M):FILE$(NM,0) = "":DESC$(NM,0) = "": GOTO 580
  64. 530  VTAB 10: PRINT "TYPE OF FILE - <E>XEC, <B>RUN, <R>UN";: INPUT C$
  65. 535 C$ =  LEFT$(C$,1)
  66. 540  IF C$ = "E"  THEN CMD$(M,I) = "EXEC ": PRINT : PRINT "     EXEC": GOTO 580
  67. 550  IF C$ = "B"  THEN CMD$(M,I) = "BRUN ": PRINT : PRINT "     BRUN": GOTO 580
  68. 560  IF C$ = "R"  THEN CMD$(M,I) = "RUN ": PRINT : PRINT "     RUN": GOTO 580
  69. 570  GOTO 530
  70. 580  VTAB 15: PRINT "DESCRIPTION (25 CHAR. MAX.) :"
  71. 590  VTAB 17: HTAB 1: PRINT "_________________________!": VTAB 17: HTAB 1
  72. 595  INPUT DESC$(M,I): IF FILE$(M,I) = ""  THEN DESC$(NM,0) = DESC$(M,I)
  73. 597  NEXT I
  74. 600 NP(M) = I -1
  75. 605  IF M <NM  THEN M = M +1: GOTO 510
  76. 610  PRINT D$;"OPEN EXECFILE": PRINT D$;"DELETE EXECFILE": PRINT D$;"OPEN EXECFILE": PRINT D$;"WRITE EXECFILE"
  77. 613  PRINT "2 ID$=";Q$;ID$;Q$: PRINT "3 PN$=";Q$;PN$;Q$
  78. 620  PRINT "DEL 1000,2000": PRINT "1000 DATA ";NM
  79. 625 LN = 1010
  80. 630  FOR I = 0 TO NM: PRINT LN;" DATA "NP(I):LN = LN +10: FOR J = 0 TO NP(I)
  81. 640  PRINT LN;" DATA ";Q$;DESC$(I,J);Q1$;CMD$(I,J);Q1$;FILE$(I,J);Q$
  82. 645 LN = LN +10
  83. 650  NEXT J,I
  84. 670  PRINT "UNLOCK ";PN$
  85. 680  PRINT "SAVE ";PN$
  86. 690  PRINT "LOCK ";PN$
  87. 700  PRINT "RUN ";PN$
  88. 710  PRINT D$"CLOSE EXECFILE"
  89. 720  PRINT D$;"EXEC EXECFILE"
  90. 730  TEXT 
  91. 740  VTAB 20: END 
  92. 900  REM  GOTO MENU
  93. 910 M =  VAL(F$)
  94. 920  GOTO 300
  95. 1000  DATA  8
  96. 1010  DATA  8
  97. 1020  DATA  "","",""
  98. 1030  DATA  "GAMES","1",""
  99. 1040  DATA  "NOVELTIES","2",""
  100. 1050  DATA  "UTILITIES","3",""
  101. 1060  DATA  "HOME & BUSINESS","4",""
  102. 1070  DATA  "TUTORIALS","5",""
  103. 1080  DATA  "IQ STUFF","6",""
  104. 1090  DATA  "EDUCATIONAL","7",""
  105. 1100  DATA  "SORTS","8",""
  106. 1110  DATA  4
  107. 1120  DATA  "GAMES","0",""
  108. 1130  DATA  "EVASION","RUN ","EVASION"
  109. 1140  DATA  "STARS","RUN ","STARS"
  110. 1150  DATA  "SPACE.GORN","RUN ","SPACE.GORN"
  111. 1160  DATA  "HORSE.RACE","RUN ","HORSE.RACE"
  112. 1170  DATA  3
  113. 1180  DATA  "NOVELTIES","0",""
  114. 1190  DATA  "RANDOM.WALK","RUN ","RANDOM.WALK"
  115. 1200  DATA  "SMILEY.FACE","RUN ","SMILEY.FACE"
  116. 1210  DATA  "SIREN","RUN ","SIREN"
  117. 1220  DATA  3
  118. 1230  DATA  "UTILITIES","0",""
  119. 1240  DATA  "HEX.TO.TEN","RUN ","HEX.TO.TEN"
  120. 1250  DATA  "EXECUMATIC","EXEC ","STARTOFF"
  121. 1260  DATA  "DRAW.SHAPES","RUN ","DRAW.SHAPES"
  122. 1270  DATA  2
  123. 1280  DATA  "HOME & BUSINESS","0",""
  124. 1290  DATA  "JURY","RUN ","JURY"
  125. 1300  DATA  "STOPWATCH","RUN ","STOPWATCH"
  126. 1310  DATA  2
  127. 1320  DATA  "TUTORIALS","0",""
  128. 1330  DATA  "WHAT I DO","RUN ","WHAT I DO PART1"
  129. 1340  DATA  "MATRIX.MAGIC","RUN ","MATRIX.MAGIC"
  130. 1350  DATA  1
  131. 1360  DATA  "IQ STUFF","0",""
  132. 1370  DATA  "VOCAB","RUN ","VOCAB"
  133. 1380  DATA  2
  134. 1390  DATA  "EDUCATIONAL","0",""
  135. 1400  DATA  "PERIODIC ELEMENT TABLE","RUN ","THE.TABLE"
  136. 1410  DATA  "ION.TEST","RUN ","ION.TEST"
  137. 1420  DATA  2
  138. 1430  DATA  "SORTS","0",""
  139. 1440  DATA  "SORT.ROUTINE","RUN ","SORT.ROUTINE"
  140. 1450  DATA  "BUBBLE.SORT","RUN ","BUBBLE.SORT"